import numpy as np
from matplotlib import pyplot as plt


def main():
    array1 = np.arange(1, 10)
    print(array1 + 10)
    print(array1 * 10)
    print(array1 > 5)
    print(array1 % 2 == 0)
    array2 = np.array([1, 1, 1, 2, 2, 2, 3, 3, 3])
    print(array1 + array2)
    print(array1 * array2)
    print(array1 ** array2)
    print(array1 > array2)
    print(array1 % array2 == 0)
    # 平方根
    print(np.sqrt(array1))
    # 对数
    print(np.log2(array1))
    # 追加和插入元素。
    print(np.append(array1, [10, 100]))
    print(np.insert(array1, 1, [98, 99, 100]))
    print(np.extract(array1 % 2 != 0, array1))
    print(np.select([array1 <= 3, array1 >= 7], [array1 * 10, array1 ** 2]))
    print(np.where(array1 <= 5, array1 * 10, array1 ** 2))
    # 重复数组元素创建新数组。
    print(np.repeat(array1, 3))
    print(np.tile(array1, 2))
    print(np.resize(array1, (5, 3)))
    # 符合条件的轮训【1,2,3】替换
    np.place(array1, array1 > 5, [1, 2, 3])
    print(f'array1: {array1}')


def main2():
    array3 = np.array([[4, 5, 6], [7, 8, 9]])
    array4 = np.array([[1, 2, 3], [3, 2, 1]])
    print(np.maximum(array3, array4))
    print(np.power(array3, array4))
    array5 = np.array([[0, 0, 0], [1, 1, 1], [2, 2, 2], [3, 3, 3]])
    # 去重（重复元素只保留一项）。
    np.unique(array5)
    print(f'array5: {np.unique(array5)}')
    # 堆叠和拼接。
    array8 = np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]])
    array9 = np.array([[4, 4, 4], [5, 5, 5], [6, 6, 6]])
    print(np.hstack((array8, array9)))
    print(np.concatenate((array8, array9)))
    print(np.concatenate((array8, array9), axis=1))


if __name__ == '__main__':
    main()
